Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Перевантаження функцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра СКС

Інформація про роботу

Рік:
2009
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Об’єктно-орієнтоване програмування
Група:
КІ-15

Частина тексту файла

Міністерство освіти і науки України Національний університет "Львівська політехніка" Кафедра СКС Звіт З лабораторної роботи №2 з дисципліни: "Програмування ч. 2 (Об'єктно-орієнтоване програмування)" на тему: "Перевантаження функцій" Мета роботи: Використовуючи перевантаження функцій, написати та продемонструвати функцію func, яка повертає середнє арифметичне елементів послідовності між мінімальним та максимальним елементами для масивів цілих і дробових значень окремо. Короткі теоретичні відомості С++ дозволяє визначати декілька функцій з одним і тим же іменем, якщо дані функції мають різні набори параметрів (принаймні різні типи параметрів). Нехай оголошені наступні функції: іnt func(іnt); іnt func(int, int); іnt func(double); При виклику функції з ім’ям func спершу компілятор намагатиметься знайти функцію, формальні аргументи якої відповідають фактичним аргументам без усяких перетворень типів або з використанням тільки неминучих перетворень - наприклад, імені масиву до покажчика або значення змінної до константи або навпаки. Якщо відповідна функція не знайдена, то здійснюється пошук такої функції, щоб для відповідності формальних і фактичних аргументів досить було використати тільки такі стандартні перетворення, що не спричиняють перетворень цілих типів до типів з плаваючою крапкою і навпаки. При цьому підбирається функція, для якої число таких перетворень було б мінімальним. int i = func(2.5, 3.7); // Викличе func(int, int) int i = func(123L); // Викличе func(int) Третім етапом є пошук такої функції, для виклику якої досить здійснити будь-які стандартні перетворення аргументів (і знову так, щоб цих перетворень було якнайменше). Далі здійснюється пошук функції, для якої аргументи можна одержати за допомогою всіх перетворень, розглянутих до цього, а також перетворень типів, визначених самим програмістом. Якщо й у цьому випадку єдина потрібна функція не знайдена, то на останньому етапі компілятор пробує знайти відповідність з урахуванням списку невизначених аргументів. Якщо компілятор не знайде ні однієї підходящої функції, тоді буде виведене повідомлення про помилку. Повний лістінг виконаної програми Перевірено на дієздатність у Microsoft Visual C++ 2008 Express Edition // Кафедра СКС // ООП, Лабораторна робота № 2 // Виконав студент групи КІ-15 // Дунай Андрій // 12 варіант #include <iostream> // необхідна для керування потоками cin/cout #include <conio.h> // необхідна для використання функції _getch() using namespace std; float average(int integers[10]) { int a, i, min, minId, max, maxId; minId=0; maxId=0; for(i=1,min=integers[0],max=integers[0];i<10;i++) { if(integers[i]<min) { min=integers[i]; minId=i; } if(integers[i]>max) { max=integers[i]; maxId=i; } } if(max<min) swap(minId, maxId); a=0; for(i=minId+1;i<maxId;i++) a=a+integers[i]; return (float)a/(maxId-minId-1); } float average(float floats[10]) { int i, minId, maxId; float a, min, max; minId=0; maxId=0; for(i=1,min=floats[0],max=floats[0];i<10;i++) { if(floats[i]<min) { min=floats[i]; minId=i; } if(floats[i]>max) { max=floats[i]; maxId=i; } } //if(max<min) swap(minId, maxId); a=0; for(i=minId+1;i<maxId;i++) a=a+floats[i]; /* cout << floats[i] << " ";*/ return a/(maxId-minId-1); return 0; } int main(int argc, char* argv[]) { int i; int integers[10]; float floats[10]; float nAverage, fAverage; cout << "This program calculates the average arithmetic\n"; cout << "of numbers between minimal and maximal of\n"; cout << "entered array values.\n\n"; for(i=0;i<10;i++) { cout << "Please enter INT " << i+1 << " of 10:"; cin >> integers[i]; } for(i=0;i<10;i++) { cout << "Please enter FLOAT " << i+1 << " of 10:"; cin >> floats[i]; } nAverage=average(integers); fAverage=average(floats); cout << "The average of integers is " << nAverage << "\n"; cout << "The average of floats is " << fAverage << "\n"; _getch(); return 0; } Висновок Я навчився реалізувати перевантаження функцій у програ...
Антиботан аватар за замовчуванням

01.12.2012 19:12

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини